<HTML>
<!--
     Copyright (c) 2012 Trustees of Indiana University
    
     Distributed under the Boost Software License, Version 1.0.
     (See accompanying file LICENSE_1_0.txt or copy at
     http://www.boost.org/LICENSE_1_0.txt)
  -->
<Head>
<Title>Value-Transforming Property Map Adaptor</Title>
<BODY BGCOLOR="#ffffff" LINK="#0000ee" TEXT="#000000" VLINK="#551a8b" 
	ALINK="#ff0000"> 
<IMG SRC="../../../boost.png" 
     ALT="C++ Boost" width="277" height="86"> 

<BR Clear>


<H2><A NAME="sec:function-property-map"></A>
</h2>
<PRE>
transform_value_property_map&lt;UnaryFunction, PM, Ref&gt;
</PRE>

<P>
This property map is an adaptor that composes a function object after an existing property map.  The new property map will model either <a href="ReadablePropertyMap.html">Readable Property Map</a> or a <a href="LvaluePropertyMap.html">Lvalue Property Map</a>.  The category of the property map is based on whether the function's return type (as given by <tt>Ref</tt>) is a non-const reference type.

<P>

<!-- <h3>Example</h3>

<pre>
</pre> -->

<H3>Where Defined</H3>

<P>
<a href="../../../boost/property_map/transform_value_property_map.hpp"><TT>boost/property_map/transform_value_property_map.hpp</TT></a>

<p>
<H3>Model Of</H3>

<a href="./ReadablePropertyMap.html">Readable Property Map</a> or <a href="./LvaluePropertyMap.html">Lvalue Property Map</a>

<P>

<H3>Template Parameters</H3>

<P>

<TABLE border>
<TR>
<th>Parameter</th><th>Description</th><th>Default</th>
</tr>


<TR>
<TD><TT>UnaryFunction</TT></TD> 
<TD>Must be a model of <a href="http://www.sgi.com/tech/stl/UnaryFunction.html">Unary Function</a> that accepts an object of type <tt>property_traits&lt;PM&gt;::reference</tt> as an argument and returns a result of type <tt>Ref</tt>.</TD>
<TD>&nbsp;</td>
</tr>

<TR>
<TD><TT>PM</TT></TD> <TD>The underlying property map.
</TD> <TD>&nbsp;</TD>
</TR>

<TR>
<TD><TT>Ref</TT></TD>
<TD>The result type of the function.</TD>
<TD><TT>boost::result_of&lt;const UnaryFunction(property_traits&lt;PM&gt;::reference)&gt;::type</TT></TD>
</TR>


</TABLE>
<P>

<H3>Members</H3>

<P>
In addition to the methods and functions required by <a
href="./ReadablePropertyMap.html">Readable Property Map</a> or <a href="LvaluePropertyMap.html">Lvalue Property Map</a>, this
class has the following members:

<hr>

<pre>
property_traits&lt;transform_value_property_map&gt;::value_type
</pre>
The type <tt>Ref</tt> with any reference or cv-qualifiers removed.

<hr>

<pre>
transform_value_property_map(const UnaryFunction&amp; f, const PM&amp; pm);
</pre>
Constructor.

<hr>

<h3>Non-Member functions</h3>

<hr>

<pre>
  template &lt;class PM, class UnaryFunction&gt;
  transform_value_property_map&lt;UnaryFunction, PM&gt;
  make_transform_value_property_map(const UnaryFunction&amp; f, const PM&amp; pm);
</pre>
Returns a <tt>transform_value_property_map</tt> using the given function and property map type.

<hr>

<pre>
  template &lt;class Ref, class PM, class UnaryFunction&gt;
  transform_value_property_map&lt;UnaryFunction, PM, Ref&gt;
  make_transform_value_property_map(const UnaryFunction&amp; f, const PM&amp; pm);
</pre>
Returns a <tt>transform_value_property_map</tt> using the given function and property map, explicitly giving the function's result type.

<hr>

<br>
<HR>
<TABLE>
<TR valign=top>
<TD nowrap>Copyright &copy; 2012</TD><TD>Trustees of Indiana University
</TD></TR></TABLE>

</BODY>
</HTML> 
